home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 011 / passwrd3.arc / LOCK.ASM next >
Encoding:
Assembly Source File  |  1985-02-25  |  3.7 KB  |  96 lines

  1. PAGE   60,132
  2. TITLE  LOCK V1.1 - RECALLS PASSWORD DEVICE DRIVER CODE
  3.  
  4. ;-----------------------------------------------------------------------
  5. ;  LOCK V1.1
  6. ;
  7. ;  LOCK IS DESIGNED TO WORK IN CONJUNCTION WITH PASSWRD3.SYS.
  8. ;  ITS PURPOSE IT TO CALL A PORTION OF CODE INTERNAL TO THE
  9. ;  DEVICE DRIVER PASSWRD3.SYS. THIS WILL ENABLE A USER TO "LOCK"
  10. ;  THE PC UNTIL A USER REPLIES WITH THE CORRECT PASSWORD.
  11. ;  ** CAUTION  BEWARE OF UPPER CASE VS LOWER CASE WHEN RESPONDING **
  12. ;
  13. ;  THIS CODE WILL CHECK THE INTERUPT VECTOR 66h FOR A NON ZERO SEGMENT
  14. ;  REFERENCE BEFORE CALLING THE PASSWORD ROUTINE. PASSWRD3.SYS WILL
  15. ;  INITIALIZE THIS INTERUPT A BOOT TIME. SINCE THE PASSWRD3.SYS
  16. ;  DEVICE DRIVER, LIKE ANY DEVICE DRIVER, REMAINS RESIDENT THE USER
  17. ;  IS ASSURED THAT HE ONLY NEED CHANGE PASSWRD3.SYS IN ORDER TO
  18. ;  CHANGE THE SYSTEM PASSWRD.
  19. ;
  20. ;                                       JOHN R. PETROCELLI
  21. ;                                       02/25/85
  22. ;
  23. ;----------------------------------------------------------------------
  24. ;
  25. INT_VECTORS  SEGMENT AT 0H          ; POINT TO INTERUPT VECTOR TABLE
  26.      ORG 66H*4                      ; INT 66H
  27.      ASK_OFF DW                     ; OFFSET OF PASSWORD RECALL
  28.      ASK_SEG DW                     ; SEGMENT OF PASSWORD RECALL
  29. INT_VECTORS ENDS
  30.  
  31. CODE_SEG  SEGMENT PARA 'CODE'
  32.  
  33.      ASSUME  CS:CODE_SEG, DS:CODE_SEG, ES:INT_VECTORS, SS:NOTHING
  34.  
  35.      ORG     100H                   ; NEEDED FOR A .COM PROGRAM
  36.  
  37. BEGIN:
  38.      PUSH    DS                     ; SAVE REGISTERS FOR
  39.      PUSH    ES                     ; GOOD HOUSKEEPING (NO PUN
  40.      PUSH    AX                     ; INTENDED)
  41.      PUSH    BX                     ;
  42.      PUSH    DX                     ;
  43.  
  44.      MOV     AX,0                   ;  SET ES TO REFERENCE
  45.      MOV     ES,AX                  ;  INT_VECTORS
  46.  
  47.      MOV     AX,CS                  ;  SET DS TO REFERENCE
  48.      MOV     DS,AX                  ;  CODE_SEG
  49.  
  50.      LEA     BX,ASK_OFF             ;  SET ES:BX TO POINT TO
  51.                                     ;  LOCATION IN THE INT VECTOR
  52.                                     ;  TABLE CONTAINING SEG & OFFSET
  53.                                     ;  OF PASSWORD RECALL ROUTINE
  54.  
  55.      MOV     AX,ES:[BX+2]           ;  LOAD AX WITH SEGMENT OF CALL
  56.      CMP     AX,0                   ;  AND IF THE SEGMENT IS 0 THEN
  57.      JZ      ERROR_EXIT             ;  EXIT - NOT INITIALIZED
  58.  
  59.      CALL    DWORD PTR ES:[BX]      ; CALL PWORD IF INSTALLED
  60.                                     ; ES:BX WILL POINT TO THE ADDRESS
  61.                                     ; OF THE ROUTINE TO BE CALLED
  62.  
  63. EXIT:
  64.      POP     DX                     ; RESTORE REGISTERS FOR
  65.      POP     BX                     ; GOOD HOUSKEEPING (NO PUN
  66.      POP     AX                     ; INTENDED)
  67.      POP     ES                     ;
  68.      POP     DS                     ;
  69.  
  70.      RET                            ; RETURN TO DOS
  71.  
  72. ERROR_EXIT:                         ; SEGMENT AND/OR OFFSET
  73.                                     ; WERE 0000 SO WE DON'T CALL
  74.                                     ; JUST PRINT ERROR MESSAGE
  75.  
  76.      MOV     DX,OFFSET NO_INIT      ; DS:DX POINTS TO ERROR MSG
  77.      MOV     AX,0900H               ; SET UP AX TO PRINT DS:DX
  78.      INT     21H                    ; PRINT ERROR MSG
  79.  
  80.      JMP     EXIT                   ; RETURN TO DOS
  81.  
  82.      NOP                            ; PAD
  83.      NOP                            ; PAD
  84.      NOP                            ; PAD
  85.  
  86. NO_INIT DB 1BH,'[5m',               ; MAKE "PASSWORD" BLINK
  87.         DB ' PASSWORD '
  88.         DB 1BH,'[0m'                ; ATTRIBUTES TO NORMAL
  89.         DB ' Device Driver Does Not'
  90.         DB ' Appear To Be Installed'
  91.         DB 07H,0DH,0AH,'$'          ; BEEP+CR+LF
  92.  
  93. CODE_SEG    ENDS
  94.  
  95.      END    BEGIN
  96.